"use strict";
///////////////////历史数据///////////////////
const bag = 95;
const mvc = require('cosjs.mvc');
const dataset = require("cosjs.updater").dataset;
class mainStory extends dataset.table {
    constructor(updater) {
        super(updater, bag, 'mainStory');
        this.sort = bag;
        this._Math_Act = [];  //max min
    }
    types(id) {
        let ret, str = String(id);
        if (str.indexOf("-") < 0) {
            ret = { "id": str, "_id": this.model.ObjectID(id) };
        }
        else {
            let arr = str.split("-");
            ret = { "id": String(arr[1]), "_id": str };
        }
        return ret;
    }

    format(data, act) {
        data['id'] = data.id;
        return mvc.format("mainStory", data, true);
    }

    get(id) {
        let d = super.get(id) || {};
        return d || 0;
    }
    // //插入一个最大值
    // max(id, val) {
    //     let ty = this.key(id);
    //     ty['v'] = val;
    //     ty['t'] = 1;
    //     this._Math_Act.push(ty);
    // }
    // //插入一个最小值
    // min(id, val) {
    //     let ty = this.key(id);
    //     ty['v'] = val;
    //     ty['t'] = -1;
    //     this._Math_Act.push(ty);
    // }
    del() {
        return null
    };
    // sub() {
    //     return null
    // };

    // add(id, val) {
    //     return this.act('add', id, 'val', val)
    // };

    // set(id, val) {
    //     return this.act('set', id, '*', val);
    // };
    set(id, key, val) {
        return this.act('set', id, key, val);
    };
    verify() {
        //预处理 min，max
        for (let d of this._Math_Act) {
            let v = this.get(d) || 0;
            if ((d['t'] > 0 && d['v'] > v) || (d['t'] < 0 && d['v'] < v)) {
                this.set(d.id, d['v']);
            }
        }
        //进入正常流程
        return super.verify();
    };
    // act(t, k, v) {
    //     let act;
    //     let _id = this.model.ObjectID(this.model.uid);
    //     if (arguments.length === 1) {
    //         act = arguments[0]
    //     }
    //     else {
    //         act = { "_id": _id, "t": t, "k": k, "v": v, "b": this.bag };
    //     }
    //     act["_id"] = _id;
    //     if (act.t !== "set") {
    //         act.v = Number(act.v);
    //         if (!act.v) { return; }
    //         this.key(act.k);
    //     }

    //     this._acts.push(act);
    //     let dailyCache = mvc.model.redis("dailyCache", this.updater.sid);
    //     let ttl = 1 * 24 * 3600; //有效期1天
    //     dailyCache.set(this.model.uid, this._acts, ttl);
    //     if (this._update && typeof hash_act_parser[act.t] === 'function') {
    //         hash_act_parser[act.t].call(this, act);
    //     }
    // }
};

module.exports = mainStory;